package cn.genmer.test.security.writtenTest.tuya;

import java.util.*;

/**
 * 涂鸦智能笔试题2
 *给你一个混合字符串s,请你返回s中第二大的数字,如果不存在第二大的数字,请你返
 * 混合字符串由小写英文字母和数字组成
 * 例1输入输出示例仅供调试,后台判题数据一般不包含示例
 * 输入
 * dfal232lafd
 * 输出
 */
public class Solution {
    public static void main(String[] args) {

        System.out.println(secondHighest("dfa12321afd"));
    }
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * 字符串中第二大的数字
     * @param s string字符串 字符串
     * @return int整型
     */
    public static int secondHighest (String s) {
        // write code here
        char max =0;
        char second =0;
        // 将字符串转化成字符数组
        char[] chars = s.toCharArray();
        for (char ch: chars){
            // 遍历是数字的的字符
            if (Character.isDigit(ch)){
                // 找出最大值。第一次肯定是大于默认值0的（负数可忽略）
                if (ch>max){
                    max =ch;
                } else {
                    // 同理，第一次对比找到小于max的值肯定是大于secode（默认值0），之后就可以找到目标结果
                    if (ch>second){
                        second = ch;
                    }
                }
            }
        }
        // 返回结果，结果为ASCII，通过这个方式可以转换成对于的数值
        return Integer.parseInt(second + "");
    }
}